var mongodb = require('./db');

function User_score(user) {
    this.name = user.name;
    this.score = user.score;
};

module.exports = User_score;

//存储用户信息
User_score.prototype.save = function(callback) {
    //要存入数据库的用户文档
    var user_score = {
        name: this.name,
        score: this.score,
    };
    //打开数据库
    mongodb.open(function (err, db) {
        if (err) {
            return callback(err);//错误，返回 err 信息
        }
        //读取 users 集合
        db.collection('score', function (err, collection) {
            if (err) {
                mongodb.close();
                return callback(err);//错误，返回 err 信息
            }
            //将用户数据插入 users 集合
            collection.insert(user_score, {
                safe: true
            }, function (err, user_score) {
                mongodb.close();
                if (err) {
                    return callback(err);//错误，返回 err 信息
                }
                callback(null, user_score[0]);//成功！err 为 null，并返回存储后的用户文档
            });
        });
    });
};

//读取用户信息
User_score.prototype.get = function(name, callback) {
    //打开数据库
    mongodb.open(function (err, db) {
        if (err) {
            return callback(err);//错误，返回 err 信息
        }
        //读取 users 集合
        db.collection('score', function (err, collection) {
            if (err) {
                mongodb.close();
                return callback(err);//错误，返回 err 信息
            }
            //查找用户名（name键）值为 name 一个文档
            collection.findOne({
                name: name
            }, function (err, user) {
                mongodb.close();
                if (err) {
                    return callback(err);//失败！返回 err 信息
                }
                callback(null, user);//成功！返回查询的用户信息
            });
        });
    });
};

User_score.prototype.update = function(name,score,callback) {
    //打开数据库
    mongodb.open(function (err, db) {
        if (err) {
            return callback(err);//错误，返回 err 信息
        }
        //读取 users 集合
        db.collection('score', function (err, collection) {
            if (err) {
                mongodb.close();
                return callback(err);//错误，返回 err 信息
            }
            var where_str={"name":name};
            var update_str={$set:{'score':score}};
            //查找用户名（name键）值为 name 一个文档
            collection.update(where_str,update_str, function (err, user) {
                mongodb.close();
                if (err) {
                    return callback(err);//失败！返回 err 信息
                }
                callback(null, user);//成功！返回查询的用户信息
            });
        });
    });
};
User_score.get_in_arr = function(callback) {
    //打开数据库
    console.log('-------------------------------------------');
    mongodb.open(function (err, db) {
        if (err) {
            return callback(err);//错误，返回 err 信息
        }
        //读取 users 集合
        db.collection('score', function (err, collection) {
            if (err) {
                mongodb.close();
                return callback(err);//错误，返回 err 信息
            }
            var ids = ['wpy','liyang','xiaoze','ludadf','anquan','liuwei','liguangsong','chenyue'];
            //查找用户名（name键）值为 name 一个文档
            var whereStr={"name":{"$in":ids}};
            collection.find(whereStr).toArray(function(err,result){
                mongodb.close();
                console.log(result);
                    callback(null, result);//成功！返回查询的用户信息

            })
        });
    });
};